<template>
    <div>        
        <div class="todo-container">
            <div class="todo-wrap">
            <MyHeader :transTodo="transTodo"/>
            <MyList :todos="todos" :updateTodo="updateTodo" :deleteTodo="deleteTodo"/>
            <MyFooter :todos="todos" :deleteAllCompleteTodo="deleteAllCompleteTodo" :allchecked="allchecked"/>
            </div>
        </div>
    </div>
</template>

<script>
import MyHeader from './components/MyHeader.vue';
import MyList from './components/MyList.vue';
import MyFooter from './components/MyFooter.vue';
export default {
    name:'app',
    components:{MyHeader,MyList,MyFooter},
    data() {
        return {
            todos:[
                {id:'001',name:'抽烟',done:true},
                {id:'002',name:'喝酒',done:false},
                {id:'003',name:'烫头',done:true}
            ]
        }
    },
    methods:{
        //添加一个todo
        transTodo(obj){
            console.log("transTodo被调用了"+obj)
            this.todos.unshift(obj)
        },
        //更新一个todo
        updateTodo(id){
            console.log("updateTodo被调用了"+id)
            this.todos.forEach((t)=>{
                if (t.id === id) {
                     t.done = !t.done
                }
            })
        },
        //删除一个todo
        deleteTodo(id){
            console.log("deleteTodo被调用了"+id)
            this.todos = this.todos.filter((t)=>{
                if (t.id !== id) {
                     return t
                }
            })
        },
        //删除全不已完成的todo
        deleteAllCompleteTodo(){
            console.log("deleteAllCompleteTodo被调用了")
            this.todos = this.todos.filter((t)=>{
                if (t.done !== true) {
                     return t
                }
            })
        },
        //全选todo
        allchecked(ch){
            console.log("allchecked被调用了"+ch)
            this.todos.forEach((t)=>{
                if(ch){
                    t.done = true;
                }else{
                    t.done = false;
                }
            })
        }
    }
}
</script>

<style>
    /*base*/
    body {
    background: #fff;
    }
    .btn {
    display: inline-block;
    padding: 4px 12px;
    margin-bottom: 0;
    font-size: 14px;
    line-height: 20px;
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
    border-radius: 4px;
    }
    .btn-danger {
    color: #fff;
    background-color: #da4f49;
    border: 1px solid #bd362f;
    }
    .btn-danger:hover {
    color: #fff;
    background-color: #bd362f;
    }
    .btn:focus {
    outline: none;
    }
    .todo-container {
    width: 600px;
    margin: 0 auto;
    }
    .todo-container .todo-wrap {
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 5px;
    }





</style>